package java学习.leetcode.editor.cn;
/**
 * @author 刘世锦
 * 2022-10-04 22:31:19	 当前时间
 */
//给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，如果两者相等，返回 true 。# 代表退格字符。 
//
// 注意：如果对空文本输入退格字符，文本继续为空。 
//
// 
//
// 示例 1： 
//
// 
//输入：s = "ab#c", t = "ad#c"
//输出：true
//解释：s 和 t 都会变成 "ac"。
// 
//
// 示例 2： 
//
// 
//输入：s = "ab##", t = "c#d#"
//输出：true
//解释：s 和 t 都会变成 ""。
// 
//
// 示例 3： 
//
// 
//输入：s = "a#c", t = "b"
//输出：false
//解释：s 会变成 "c"，但 t 仍然是 "b"。 
//
// 
//
// 提示： 
//
// 
// 1 <= s.length, t.length <= 200 
// s 和 t 只含有小写字母以及字符 '#' 
// 
//
// 
//
// 进阶： 
//
// 
// 你可以用 O(n) 的时间复杂度和 O(1) 的空间复杂度解决该问题吗？ 
// 
// Related Topics 栈 双指针 字符串 模拟 
// 👍 526 👎 0


public class 比较含退格的字符串{
	public static void main(String[] args) {
		Solution solution = new 比较含退格的字符串().new Solution();
//		String s = "ab#c", t = "ad#c";
		String s = "ab##", t = "c#d#";
		solution.func(t);
		System.out.println(solution.backspaceCompare(s, t));
	}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
//		    0 1 2 3 4
//输入：s = "a b # c", t = "ad#c"
//输出：true
//解释：s 和 t 都会变成 "ac"。
    public boolean backspaceCompare(String s, String t) {

    	int j = 0;
		return func(s).equals(func(t));

    }
    public String func(String s){
		StringBuilder s1 = new StringBuilder();
		for (int i = 0; i < s.length();	i++) {
			if (s.charAt(i)=='#'){
				if (i-1>=0){
					s1.deleteCharAt(i-1);
				}
			}else {
				s1.append(s.charAt(i));
			}
		}
		System.out.println(s1.toString());
		return s1.toString();
	}
}
//leetcode submit region end(Prohibit modification and deletion)

}
